/*
 *------------------------------------------------------------------------------
 * @File      :    ei_mai_nna.h
 * @Date      :    2021-4-8
 * @Author    :    lomboswer <lomboswer@lombotech.com>
 * @Brief     :    Media Interface for MADP(Media Development Platform).
 *
 * Copyright (C) 2020-2021, LomboTech Co.Ltd. All rights reserved.
 *------------------------------------------------------------------------------
 */

#ifndef __EI_NNA_FACE_RECG_DEFINE_H__
#define __EI_NNA_FACE_RECG_DEFINE_H__

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

#include "ei_nna_fd_define.h"

#define NNA_FACE_RECG_FEATURE_SIZE (1024)

typedef struct eiNNA_FACE_RECG_CONFIG_S {
	EI_CHAR *ModelRootPath;

	EI_S32 s32Width;
	EI_S32 s32Height;
	EI_S32 s32MaskEnable; // invalid, face mask recg:ei_ nna_fmr.h

	EI_NNA_AX_FREQ_S stFreq;
} EI_NNA_FACE_RECG_CONFIG_S;

typedef struct eiNNA_FACE_RECG_CMP_FEAT_S {
	/**
	* NN Register Features and its norm
	*/
	EI_S8 *pRegisterFeat;
	EI_S32 s32RegisterNum;
	EI_FLOAT *pRegisternNorm;

	/**
	* NN Feature and its size
	*/
	EI_S8 *s8Features;
	EI_S32 s32FeatureLen;

	EI_S32 s32CompareSize;
	EI_S32 s32EnMask;
	EI_S32 s32Type; //2: int8, 4: int16
	/**
	* NN Register Feature and ref score and the max index
	*/
	EI_FLOAT *fScore;
	EI_S32 s32MaxID[3];
} EI_NNA_FACE_RECG_CMP_FEAT_S;

typedef struct eiNNA_FACE_RECG_FEAT_S {
	EI_S8 s8Feature[NNA_FACE_RECG_FEATURE_SIZE];
	EI_S32 s32Size;
	EI_S32 s32Type; //2: int8, 4: int16
	EI_FLOAT f32Norm;
} EI_NNA_FACE_RECG_FEAT_S;

typedef EI_S32 NNA_FR_CHN;
typedef EI_NNA_FACE_S EI_NNA_SRC_FR_S;
typedef EI_NNA_FACE_RECG_FEAT_S EI_NNA_DST_FR_S;
typedef EI_NNA_FACE_RECG_CMP_FEAT_S EI_NNA_FRC_INFO_S;
typedef EI_NNA_FACE_RECG_CONFIG_S EI_NNA_FR_CONFIG_S;

#ifdef __cplusplus
}
#endif

#endif
